//最大子树和
class Solution {
    public:
        int maxSubArray(vector<int>& nums) {
            //dp[i] 表示i位置为结尾最大连续子数组
            int n = nums.size();
            vector<int>dp(n);
            dp[0] = nums[0];
            for(int i = 1; i < n; i++)
            {
                dp[i] = max(dp[i-1]+nums[i],nums[i]);
            }
            return *std::max_element(dp.begin(),dp.end());
        }
    };